1. Field of the Invention
This is a continuation patent application of U.S. patent application Ser. No. 12/782,551, filed on May 18, 2010, by Krishna K. Yellepeddy, et al. The present invention generally relates to Hardware Security Modules employed in cryptographic key management technologies.
2. Background Information
Many electronic and online transactions utilize cryptographic keys between two or more cooperating computers in order to protect sensitive information, such as personal information, credit card numbers, transaction authorizations, and the like. One widely used cryptographic key process is Public Key Infrastructure (PKI), but many others exist as well, including proprietary and other “public” or “open” key processes and standards.
Creation of new cryptographic keys (hereinafter “keys”), and use of them to decode and encode protected data is process-intensive. For small computers which are only serving a few processes at one time, such as a handheld personal computer or a desktop computer, these processes may reasonably be handled in software modules without noticeable detriment to the performance or responsiveness of the small computer.
However, for larger computing environments, such as web servers and Electronic Data Interchange servers, creation of keys and key-based operations (encryption/decryption) for a large number of processes simultaneously, such as a large number of connections to web browsers or electronic Automatic Teller Machines, can be so resource intensive that performance of the servers is severely degraded for specified performance criteria such as maximum time to process a particular transaction, latency to use of real time data, etc.
As more and more client computers attach to electronic networks such as Wi-Fi, LAN, intranets, and the World Wide Web, and as more and more sensitive transactions are added to the networked environment, such as stock trading on wireless phones, the demand on servers to create and use keys is growing significantly.
Existing architectures of hardware, software, and networking address these demands only to a certain extent. Specialized “co-processor” hardware is available which either installs into a server, or which networks to a server, in order to off-load the key creation and key usage operations from the rest of the server's functions, leaving the server to handle other tasks such as web page serving, dynamic generation of HTML, database management, etc.
Similarly, appropriate storage of cryptographic keys is important to maintain the security value of any cryptographic arrangement, whereas unauthorized access to keys may ultimately lead to unauthorized access to the data they protect, thereby comprising the entire arrangement. Standards have evolved in the industry to allow buyers and purchasers to understand the relative security level of products and services being offered by the various vendors. One such standard is known as FIPS 140, or Federal Information Processing Standard 140, promulgated by the National Institute of Standards and Technology (NIST). It requires a particular validation program in order for a new product or service to be certified to a particular level of security, wherein Level 1 is the lowest level of security and generally requires the least resources to meet, and Level 4 is the highest level of security but also generally demands the greatest resources.
In order to meet and maintain certain “levels” of security, then, specialized key storage hardware has been developed, referred to as Hardware Storage Modules (“HSM”). While the term sounds generic out of context, in the context of cryptographic computing, HSM specifically refers to specialized hardware-based key storage which meets a specified security level.
One widely-used solution for key creation, use, storage and management is from International Business Machines Corporation (IBM)™, known as Crypto Server Management (CSM), which makes possible centralization of the management of cryptographic accelerator hardware and HSM, in particular IBM 4758 PCI Cryptographic Coprocessors, which are installed in remote computers. Using such an arrangement has lessened the need for local crypto-skilled personnel, reduced on-site support of crypto coprocessors from skilled personnel, enabled quick recovery after an unplanned stop of crypto-coprocessors, provided new crypto-functions, and allowed new keys to be introduced centrally with no need for local procedures. Additionally, there is no need for unsecured or difficult procedures for backup of keys, and no need for shipping initialized coprocessors (the tamper resistance of a 4758 makes it sensitive for physical handling with the risk that a initialized 4758 is useless at arrival and must be reinitialized). The security benefits provided by such an arrangement include no vulnerability of local keys, no exposure of exchanged keys, centralized control over code and all keys in the network, defined level of security can be easily enhanced when needed, and no need for having tight control over shipped initialized 4758s.